{
  interface IdFunc<Type> {
    id: (value: Type) => Type
    ids: () => Type[]
  }

  const m1:IdFunc<string> = {
    id: val => val,
    ids: () => []
  }

  const m2:IdFunc<number> = {
    id: val => val,
    ids: () => []
  }
  m2.id()

  let arr1: number[] = [1,2,3]

  // Array就是接口
  // Array<number> 使用泛型
  let arr2: Array<number> = [1,2,3]
  let arr3: Array<string> = []

  arr2.push

}